package com.hspedu.spring.factory;

import com.hspedu.spring.bean.Monster;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author: lihaojie
 * @Description: 静态工厂类 可以返回Monster对象
 * @DateTime: 2024/2/19 14:21
 **/
public class MyStaticFactory {

    private static Map<String, Monster> monsterMap;

    // 使用static代码块进行初始化
    // 在java基础的时候 讲过，静态代码块只会在类加载的时候创建一次
    // 类什么时候会加载？
    // 1、这个类被new的时候 2、这个类的子类被new的时候 3、这个类的静态资源被使用的时候
    static {
        monsterMap = new HashMap<>();
        monsterMap.put("monster01", new Monster(100, "牛魔王", "芭蕉扇"));
        monsterMap.put("monster02", new Monster(200, "狐狸精", "魅惑"));
    }

    // 提供一个方法 返回Monster对象
    public static Monster getMonster(String key) {
        return monsterMap.get(key);
    }

}
